<?php
    class Estacao extends CI_Controller{
    
        function index (){
            redirect('estacao/listarEstacoes');
        }
        
        function montaSubmenu(){
            $submenu = array( 
                0 => array('nome' => 'Estações de Metrô', 'link' => 'estacao'),
                1 => array('nome' => 'Paradas de Ônibus', 'link' => 'parada'),
                2 => array('nome' => 'Cooperativas de Taxi', 'link' => 'cooperativa'),
                3 => array('nome' => 'Metrôs', 'link' => 'estacao/listarMetros'),
                4 => array('nome' => 'Ônibus', 'link' => 'parada/listarOnibus')
            );
            return $submenu;
        }
        
        function listarEstacoes(){
            $this->load->model('estacaoModel');
            $dados['estacoes'] = $this->estacaoModel->getEstacoes();
            $dados['submenu'] = $this->montaSubmenu();
            $this->load->view('estacao/listarEstacoes', $dados);
        }
        
        function cadastrarEstacao(){
            $this->load->model('cidadeModel');
            $dados['cidades'] = $this->cidadeModel->dropCidades();
            $this->load->view('estacao/cadastrarEstacao',$dados);        
        }
    
        function cadastrandoEstacao(){
            $this->load->model('estacaoModel');
        
            $dados['estacao'] = $this->input->post('nome');
            $dados['endereco'] = $this->input->post('endereco');
            $dados['telefone'] = $this->input->post('telefone');
            $dados['cidade_id'] = $this->input->post('cidade');
            
            $this->estacaoModel->cadastrarEstacao($dados);
        
            redirect('estacao/listarEstacoes');
        }
    
        function editarEstacao(){
            $this->load->model('cidadeModel');
            $this->load->model('estacaoModel');
            $id = $this->uri->segment(3);
            
            $dados['cidades'] = $this->cidadeModel->dropCidades();
            $dados['estacao'] = $this->estacaoModel->getEstacao($id);
            $this->load->view('estacao/editarEstacao', $dados);
        }
    
        function editandoEstacao(){
            $this->load->model('estacaoModel');
        
            $dados['id'] = $this->input->post('id');
            $dados['estacao'] = $this->input->post('nome');
            $dados['endereco'] = $this->input->post('endereco');
            $dados['telefone'] = $this->input->post('telefone');
            $dados['cidade_id'] = $this->input->post('cidade');
            
            $this->estacaoModel->editarEstacao($dados);
        
            redirect('estacao/listarEstacoes');
        }
    
        function excluirEstacao(){
            $this->load->model('estacaoModel');
            $id = $this->uri->segment(3);
        
            $this->estacaoModel->excluirEstacao($id);
            return true;
        }
        
        function listarMetros(){
            $this->load->model('estacaoModel');
            $dados['metros'] = $this->estacaoModel->getMetros();
            $dados['submenu'] = $this->montaSubmenu();
            $this->load->view('estacao/listarMetros', $dados);
        }
        
        function cadastrarMetro(){
            $this->load->model('cidadeModel');
            $dados['cidades'] = $this->cidadeModel->dropCidades();
            $this->load->view('estacao/cadastrarMetro',$dados);        
        }
    
        function cadastrandoMetro(){
            $this->load->model('estacaoModel');
        
            $dados['metro'] = $this->input->post('linha');
            $dados['preco'] = $this->input->post('preco');
            
            $this->estacaoModel->cadastrarMetro($dados);
        
            redirect('estacao/listarEstacoes');
        }
    
        function editarMetro(){
            $this->load->model('cidadeModel');
            $this->load->model('estacaoModel');
            $id = $this->uri->segment(3);
            
            $dados['cidades'] = $this->cidadeModel->dropCidades();
            $dados['metro'] = $this->estacaoModel->getMetro($id);
            $this->load->view('estacao/editarMetro', $dados);
        }
    
        function editandoMetro(){
            $this->load->model('estacaoModel');
        
            $dados['id'] = $this->input->post('id');
            $dados['metro'] = $this->input->post('linha');
            $dados['preco'] = $this->input->post('preco');
            
            $this->estacaoModel->editarMetro($dados);
        
            redirect('estacao/listarEstacoes');
        }
    
        function excluirMetro(){
            $this->load->model('estacaoModel');
            $id = $this->uri->segment(3);
        
            $this->estacaoModel->excluirMetro($id);
            return true;
        }
        
        function listarMetrosEstacao(){
            $this->load->model('estacaoModel');
            $id = $this->uri->segment(3);
            
            $dados['estacao'] = $this->estacaoModel->getEstacao($id);
            $dados['metros'] = $this->estacaoModel->getMetrosEstacao($id);
            $this->load->view('estacao/listarMetrosEstacao', $dados);
        }
        
        function adicionarMetroEstacao(){
            $this->load->model('estacaoModel');
            $dados['estacao'] = $this->uri->segment(3);
            $dados['metros'] = $this->estacaoModel->dropMetros();
            $this->load->view('estacao/adicionarMetroEstacao', $dados);
        }
        
        function adicionandoMetroEstacao(){
            $this->load->model('estacaoModel');
        
            $dados['metro_id'] = $this->input->post('metro');
            $dados['estacao_id'] = $this->input->post('estacao');
            $dados['inicio'] = $this->input->post('inicio');
            $dados['fim'] = $this->input->post('fim');
            $dados['intervalo'] = $this->input->post('periodo');
            
            $this->estacaoModel->adicionarMetroEstacao($dados);
            redirect('estacao/listarMetrosEstacao/'.$dados['estacao_id']);
        }
        
        function excluirMetroEstacao(){
            $this->load->model('estacaoModel');
            $metro = $this->uri->segment(3);
            $estacao = $this->uri->segment(4);
            
            $this->estacaoModel->excluirMetroEstacao($metro, $estacao);
            return true;
        }
    }
?>